#include <iostream>

class Point
{
public:
    double get_x() { return x; }

    double get_Y() { return y; }

    void set_x(double x) { this->x = x; }
    void set_y(double y) { this->y = y; }

    double distance(Point other)
    {
        return (x - other.x) * (x - other.x) + (y - other.y) * (y - other.y);
    }

private:
    double x;
    double y;
};

class Circle
{
public:
    void set_r(double r) { this->r = r; }
    double get_r() { return r; }

    Point get_center() { return center; }
    void set_center(Point center) { this->center = center; }

    std::string judge(Point p)
    {
        if (p.distance(center) > r * r)
        {
            return "在圆外";
        }
        else if (p.distance(center) < r * r)
        {
            return "在圆内";
        }
        else
        {
            return "在圆上";
        }
    }

private:
    Point center;
    double r;
};

int main(int argc, char const *argv[])
{
    

    Point center;
    center.set_x(0);
    center.set_y(0);

    Circle circle;
    circle.set_center(center);
    double r = 5;
    circle.set_r(r);

    Point p;
    double x = 4.9999999999999;
    double y = 0;
    p.set_x(x);
    p.set_y(y);

    std::cout << circle.judge(p) << std::endl;

    return 0;
}
